/*******************************************************************************
* @file    
* @brief   串口3
*******************************************************************************/
#include "pincfg.h"
#include "bsp.h"
#include "os_obj.h"  
#include "dataproc.h" 
#include "com_obj.h" 
#include "str_ext.h"
#include "bsp_uart_timer.h"
/*******************************************************************************
* @brief   端口映射
*******************************************************************************/
#define comPORT       USART3
#define comIsr        COM_USART3_IRQHandler
#define COM_IRQn      USART3_IRQn
#define ComObj        com.obj03

/*******************************************************************************
* @brief   硬件 FIFO 尺寸
*******************************************************************************/
#define COM_PORT_FIFO_SIZE			1

/*******************************************************************************
* @brief   串口缓存
*******************************************************************************/
static uint8_t com_tx_buff[512*3];
static uint8_t com_rx_buff[128];

/*******************************************************************************
* @brief   RS485模式方向控制，不用时定义为空即可
*******************************************************************************/
#define com_dir_RxEnable() 
#define com_dir_TxEnable() 

/*******************************************************************************
* @brief   接口功能，循环模式不支持RS485
*******************************************************************************/
#define COM_RX_EN                   1
#define COM_RX_CALL_BACK_EN         1
#define MB_RS_485_MODE_EN           0
#define MB_RS_485_HALDIR_EN         0

/*******************************************************************************
* @brief   函数声明
*******************************************************************************/
static void com_pin_cfg(void);

/*******************************************************************************
* @brief   创建端口
*******************************************************************************/
#include "com_port_gen.c"

/*******************************************************************************
* @brief   com hal cfg.
*
* @ Pass/ Fail criteria: none
*******************************************************************************/
static void com_pin_cfg(void)
{
    intx_alloc();
	
	// 关串口中断
    nvic_irq_set(COM_IRQn,0x0F,0);
	
	cpu_it.uart3 = comIsr;
	
	// 初始化时钟
    intx_disable();
	
	RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_USART3, ENABLE);


    intx_enable();
}

/*******************************************************************************
* @brief   	com modle init .
*
* @ Pass/ Fail criteria: none
*******************************************************************************/
void com03_Init(uint8_t comMode, uint32_t ulBaudRate, com_parity_type eParity)
{
	uart_timer.uart3 = 0;
	
	com_hal_init(comMode, ulBaudRate, eParity);
	
	uart_timer.uart3 = com_timer_handle;
	
	app_timer_task_add(uart3_timer_handle);
}

